package com.tyk.bookstore.back.logistics.model.vo;


import com.tyk.bookstore.back.common.core.model.page.PageVo;
import com.tyk.bookstore.back.logistics.model.enume.WaybillState;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * @author tyk
 * @description 运单
 */
@Data
public class WaybillPageVo extends PageVo<WaybillPageVo.Waybill> {
    @Data
    public static class Waybill {

        @Schema(description = "ID")
        private Long id;

        @Schema(description = "物流单号")
        private String trackingNo;

        @Schema(description = "会员ID")
        private Long memberId;

        @Schema(description = "订单ID")
        private Long orderId;

        @Schema(description = "仓库ID")
        private Long warehouseId;

        @Schema(description = "仓库名称")
        private String warehouseName;

        @Schema(description = "快递公司ID")
        private Long expressCompanyId;

        @Schema(description = "快递公司名称")
        private String expressCompanyName;

        @Schema(description = "货物重量[单位：克]")
        private Long weight;

        @Schema(description = "运费")
        private BigDecimal freight;

        @Schema(description = "状态")
        private WaybillState state;

        @Schema(description = "寄件人所在区域ID")
        private Long senderAreaCode;

        @Schema(description = "寄件人所在区域")
        private String senderAreaFullName;

        @Schema(description = "寄件人姓名")
        private String senderName;

        @Schema(description = "寄件人电话")
        private String senderPhone;

        @Schema(description = "寄件人地址")
        private String senderAddress;

        @Schema(description = "收件人所在区域ID")
        private Long cneeAreaCode;

        @Schema(description = "收件人所在区域")
        private String cneeAreaFullName;

        @Schema(description = "收件人姓名")
        private String cneeName;

        @Schema(description = "收件人电话")
        private String cneePhone;

        @Schema(description = "收件人地址")
        private String cneeAddress;

        @Schema(description = "创建时间")
        private LocalDateTime createTime;

        @Schema(description = "更新时间")
        private LocalDateTime updateTime;
    }
}
